---
sidebar_position: 3
---

# Доступные команды

## dl

Выводит краткое описание и список доступных команд.

Пример использования:

```bash
dl
```

## completion

Выводит инструкцию по включению автодополнения в консоли.

Пример использования:

```bash
dl completion
dl completion [bash|zsh]
```

## config

Настройки приложения.

Пример использования:

```bash
dl config
```

## config repo

Меню настройки репозитория исходных образов.

По умолчанию используется репозиторий GitHub (ghcr.io). При возникновении проблем со скачиванием образов, вы можете переключить источник на зеркало RedHat (quay.io)

Пример использования:

```bash
dl config repo
```

## cert

Создание и удаление корневого самоподписанного сертификата в браузерах Firefox и/или Chrome/Chromium.

Команду нужно запустить только один раз. Она сгенерирует CA сертификат и с помощью утилиты **certutil** пропишет его в хранилище браузера.

Созданный командой сертификат `rootCA.pem` (и ключ `rootCA-key.pem`) будут расположены в директории:  
`~/.config/dl/certs`.

После установки корневого сертификата перед запуском проекта (`dl up`) будет создан SSL сертификат, проект станет доступен в браузере по https протоколу.

:::note
Эта команда использует утилиту `certutil`, которая должна быть установлена на компьютере.

Установка для некоторых OS:
- Debian/Ubuntu/Mint: `sudo apt install libnss3-tools`
- Arch Linux/Manjaro: `pacman -S nss`
- Fedora: `dnf install nss-tools`
- macOS: `brew install nss`

> В deb-пакетах certutil указан как зависимость.
:::

:::note
В некоторых операционных системах **certutil** может запросить пароль root для установки сертификата в хранилище браузера.
:::

Пример использования:

```bash
dl cert install
dl cert uninstall
```

## env

Создать или заменить файл `.env`. Если в корневом каталоге проекта существует файл `.env.example`, он будет использован вместо файла по умолчанию.

Пример использования:

```bash
dl env
```

## deploy

Скачивание файлов и базы данных с сервера.  
Без указания флага файлы и база данных загружаются по умолчанию.  
Если вы укажете флаг, например `-d`, будет загружена только база данных.

Каталоги, которые загружаются по умолчанию:

- Битрикс CMS: `bitrix`
- WordPress: `wp-admin` и `wp-includes`
- Laravel: загружается только база данных

Доступные опции:

- `-d, --database` дамп только базы данных с сервера
- `-f, --files` загружать только файлы с сервера
- `-o, --override` переопределить загружаемые директории (значения, разделенные запятыми)
- `-t, --tables` дамп только указанных таблиц (значения, разделенные запятыми)

Пример использования:

```bash
dl deploy
dl deploy -d
dl deploy -d -t b_user,b_file
dl deploy -f
dl deploy -f -o bitrix,upload
```

## up

Запустить проект и поместить файлы текущей директории в контейнер. По завершении отображает локальные ссылки на проект.  
Аналог команды `docker-compose up -d`.

Пример использования:

```bash
dl up
```

## down

Остановить и удалить запущенные контейнеры проекта и сеть.  
Аналог команды `docker-compose down`.

Пример использования:

```bash
dl down
```

## recreate

Остановить контейнеры проекта и запустить заново.  
Псевдоним последовательного выполнения команд `dl down && dl up`.

Пример использования:

```bash
dl recreate
```

## bash

Войти в контейнер PHP под пользователем www-data или root и запустить оболочку bash.

В качестве второго параметра вы можете указать имя или ID другого контейнера docker.  
По умолчанию всегда используется контейнер PHP.

Доступные опции:

- `-r, --root` войти в контейнер под пользователем root

Пример использования:

```bash
dl bash
dl bash -r
dl bash site.com_db
dl bash fcb13f1a3ea7
```

## exec

Запуск команды bash в контейнере PHP от имени пользователя www-data

Пример использования:

```bash
dl exec composer install
dl exec "ls -la"
```

## service

Управление служебными контейнерами (portainer, mailcatcher, traefik).

Пример использования:

```bash
dl service
```

### service up

Запускает контейнеры portainer, mailcatcher и traefik.  
Допустимые параметры для флага --service: `portainer`, `mail`, `traefik`

Доступные опции:

- `-r, --restart` перезапустить запущенные контейнеры
- `-s, --service` запустить один контейнер

Пример использования:

```bash
dl service up
dl service up -r
dl service up -s portainer
```

### service down

Останавливает и удаляет контейнеры portainer, mailcatcher и traefik.  
Допустимые параметры для флага --service: `portainer`, `mail`, `traefik`

Доступные опции:

- `-r, --restart` перезапустить запущенные контейнеры
- `-s, --service` запустить один контейнер

Пример использования:

```bash
dl service down
dl service down -r
dl service down -s portainer
```

### service recreate

Останавливает, удаляет и запускает заново контейнеры portainer, mailcatcher и traefik.  
Допустимые параметры для флага --service: `portainer`, `mail`, `traefik`

Доступные опции:

- `-s, --service` перезапустить один контейнер

Пример использования:

```bash
dl service recreate
dl service recreate -s portainer
```

### service restart

Перезапускает все сервисные контейнеры без удаления.  
Псевдоним команды `dl service --restart`

Пример использования:

```bash
dl service restart
```

## self-update

Скачивание с репозитория последнего стабильного релиза dl и обновление версии приложения.

> Команда доступна только при установке в домашнюю директорию пользователя.  
> При установке deb-пакета dl обновляется через apt:  
> `sudo apt update && sudo apt install dl`

Доступные опции:

- `-n, --no-overwrite` не перезаписывать файлы конфигурации

Пример использования:

```bash
dl self-update
dl self-update -n
```

## ps

Список контейнеров проекта.

Команда схожа с `docker ps`, но отображаются только контейнеры, запущенные текущим проектом.

Пример использования:

```bash
dl ps
```

Пример вывода:

| ID           | Name         | State   | IP         | Ports    |
|--------------|--------------|---------|------------|----------|
| aa2b362ea773 | site.com_php | running | 172.25.0.3 | 80/tcp   |  
| bbe79a746fe0 | site.com_db  | running | 172.25.0.2 | 3306/tcp |

## templates

Восстановление исходных файлов docker-compose в каталоге конфигурации.
> Команда не будет работать в системах Linux при установке через apt-manager.

Пример использования:

```bash
dl templates
```

## version

Отобразить текущую версию.

Пример использования:

```bash
dl version
```
